<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3"/>
<title>Open Data Protection C API: include/cJSON.h Source File</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Open Data Protection C API
   &#160;<span id="projectnumber">10</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="../../index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="../../pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="../../annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="../../files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="../../search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="../../files.html"><span>File&#160;List</span></a></li>
      <li><a href="../../globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">cJSON.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="../../d1/d82/cJSON_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">  Copyright (c) 2009 Dave Gamble</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">  Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">  of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">  in the Software without restriction, including without limitation the rights</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">  copies of the Software, and to permit persons to whom the Software is</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">  furnished to do so, subject to the following conditions:</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">  The above copyright notice and this permission notice shall be included in</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">  all copies or substantial portions of the Software.</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">  THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">  THE SOFTWARE.</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#ifndef cJSON__h</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define cJSON__h</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;{</div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">/* cJSON Types: */</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#a2d240682316354b5748f909ad220184b">   32</a></span>&#160;<span class="preprocessor">#define cJSON_False 0</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#aad4e442b8095939decddfb67d87d9324">   33</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define cJSON_True 1</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#aeadaba63ddb68aaa518528595d503dcd">   34</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define cJSON_NULL 2</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#a15e77e2f6457dc9b19c10ddb032af971">   35</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define cJSON_Number 3</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#aa2cb4765308e2bbdf01988b2acdf92d9">   36</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define cJSON_String 4</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#a57cffa126740a8efcdcb7bcef80e8897">   37</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define cJSON_Array 5</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#a22c6e13481c090629afbd77b7cebd24c">   38</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define cJSON_Object 6</span></div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor"></span>        </div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#ad3d18116aae3bfa46f13bcfd7fd6d4e7">   40</a></span>&#160;<span class="preprocessor">#define cJSON_IsReference 256</span></div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">/* The cJSON structure: */</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="code" href="../../db/d68/structcJSON.html">   43</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../db/d68/structcJSON.html">cJSON</a> {</div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="../../db/d68/structcJSON.html#ad521633b2c32126f59d962c5673de362">   44</a></span>&#160;        <span class="keyword">struct </span><a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../db/d68/structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>,*<a class="code" href="../../db/d68/structcJSON.html#ad521633b2c32126f59d962c5673de362">prev</a>;       <span class="comment">/* next/prev allow you to walk array/object chains. Alternatively, use GetArraySize/GetArrayItem/GetObjectItem */</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="../../db/d68/structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">   45</a></span>&#160;        <span class="keyword">struct </span><a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../db/d68/structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;            <span class="comment">/* An array or object item will have a child pointer pointing to a chain of the items in the array/object. */</span></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="../../db/d68/structcJSON.html#ab13084c574681593b12f6e0a3db0dcfc">   47</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="../../db/d68/structcJSON.html#ab13084c574681593b12f6e0a3db0dcfc">type</a>;                                       <span class="comment">/* The type of the item, as above. */</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="../../db/d68/structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">   49</a></span>&#160;        <span class="keywordtype">char</span> *<a class="code" href="../../db/d68/structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>;                      <span class="comment">/* The item&#39;s string, if type==cJSON_String */</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="../../db/d68/structcJSON.html#a369cea49494eb5d4409d532a731a0fbf">   50</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="../../db/d68/structcJSON.html#a369cea49494eb5d4409d532a731a0fbf">valueint</a>;                           <span class="comment">/* The item&#39;s number, if type==cJSON_Number */</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="../../db/d68/structcJSON.html#a4b21817d0fd2919901abadac73214e7f">   51</a></span>&#160;        <span class="keywordtype">double</span> <a class="code" href="../../db/d68/structcJSON.html#a4b21817d0fd2919901abadac73214e7f">valuedouble</a>;                     <span class="comment">/* The item&#39;s number, if type==cJSON_Number */</span></div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="code" href="../../db/d68/structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">   53</a></span>&#160;        <span class="keywordtype">char</span> *<a class="code" href="../../db/d68/structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>;                           <span class="comment">/* The item&#39;s name string, if this item is the child of, or is in the list of subitems of an object. */</span></div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;} <a class="code" href="../../d1/d82/cJSON_8h.html#a417c667b0692c463cf3c6c435f1d5978">cJSON</a>;</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="../../dc/d55/structcJSON__Hooks.html">   56</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../dc/d55/structcJSON__Hooks.html">cJSON_Hooks</a> {</div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="../../dc/d55/structcJSON__Hooks.html#a55ba326511f34ee6e380286c9dcf4a25">   57</a></span>&#160;      <span class="keywordtype">void</span> *(*malloc_fn)(<span class="keywordtype">size_t</span> sz);</div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="../../dc/d55/structcJSON__Hooks.html#a97927334c2456b8555df5b4568ef28fc">   58</a></span>&#160;      void (*<a class="code" href="../../dc/d55/structcJSON__Hooks.html#a97927334c2456b8555df5b4568ef28fc">free_fn</a>)(<span class="keywordtype">void</span> *ptr);</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;} <a class="code" href="../../d1/d82/cJSON_8h.html#a4c24043be07442b38adc0ef79fcfb3f8">cJSON_Hooks</a>;</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">/* Supply malloc, realloc and free functions to cJSON */</span></div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="../../dd/d21/cJSON_8c.html#a20837ed285a3c2abf578330f2bd97ad4">cJSON_InitHooks</a>(<a class="code" href="../../dc/d55/structcJSON__Hooks.html">cJSON_Hooks</a>* hooks);</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment">/* Supply a block of JSON, and this returns a cJSON object you can interrogate. Call cJSON_Delete when finished. */</span></div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#ad3df5f943457d4befebe4109d48e4a50">cJSON_Parse</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="comment">/* Render a cJSON entity to text for transfer/storage. Free the char* when finished. */</span></div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">char</span>  *<a class="code" href="../../dd/d21/cJSON_8c.html#aea4f15b04dba4dff2edc2bb1d387b555">cJSON_Print</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *item);</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment">/* Render a cJSON entity to text for transfer/storage without any formatting. Free the char* when finished. */</span></div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">char</span>  *<a class="code" href="../../dd/d21/cJSON_8c.html#a5539c9504a8e65390a94852707f105d4">cJSON_PrintUnformatted</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *item);</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="comment">/* Delete a cJSON entity and all subentities. */</span></div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span>   <a class="code" href="../../dd/d21/cJSON_8c.html#ab18060251de70a2b55a18dec694f8f8a">cJSON_Delete</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *c);</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="comment">/* Returns the number of items in an array (or object). */</span></div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">int</span>        <a class="code" href="../../dd/d21/cJSON_8c.html#adb5c049d3211599c90cd5a3d5e68d854">cJSON_GetArraySize</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *array);</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment">/* Retrieve item number &quot;item&quot; from array &quot;array&quot;. Returns NULL if unsuccessful. */</span></div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#ac48335f22f743aff913991d809e0d620">cJSON_GetArrayItem</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *array,<span class="keywordtype">int</span> item);</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment">/* Get item &quot;string&quot; from object. Case insensitive. */</span></div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#aba766c9d2c20996e323522cbf2ba46c6">cJSON_GetObjectItem</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<span class="keywordtype">object</span>,<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>);</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="comment">/* For analysing failed parses. This returns a pointer to the parse error. You&#39;ll probably need to look a few chars back to make sense of it. Defined when cJSON_Parse() returns 0. 0 when cJSON_Parse() succeeds. */</span></div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../dd/d21/cJSON_8c.html#a5e81ffc372644963c759103865b0cad1">cJSON_GetErrorPtr</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        </div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="comment">/* These calls create a cJSON item of the appropriate type. */</span></div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a83ea2a0b33071a1120b9052170a2bc13">cJSON_CreateNull</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a07b3d4616c5a682aa558180713ce858a">cJSON_CreateTrue</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a33dcdd4d4f5da12bc91372376908c42b">cJSON_CreateFalse</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a06b0c43427994498d770e65b0089f8a8">cJSON_CreateBool</a>(<span class="keywordtype">int</span> b);</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a220d076d7d3a309049d6889be6d4904a">cJSON_CreateNumber</a>(<span class="keywordtype">double</span> num);</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a5987bbc1c94d9f602d719a4015ff0e6c">cJSON_CreateString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>);</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a29e5808c66c1cf1f3edbf117babe07b3">cJSON_CreateArray</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a9c5f44afdd781b16dead90042fe74085">cJSON_CreateObject</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="comment">/* These utilities create an Array of count items. */</span></div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a12576edcea9baca64be6fe7a6ae8d4fa">cJSON_CreateIntArray</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> *numbers,<span class="keywordtype">int</span> count);</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a328fe12c04efcf2073b218bbf35ac6ec">cJSON_CreateFloatArray</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *numbers,<span class="keywordtype">int</span> count);</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a04cb41ee475a68bd2ee63e92d8534049">cJSON_CreateDoubleArray</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> *numbers,<span class="keywordtype">int</span> count);</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#abeecb344ac9a0318cd42ac32b6e22289">cJSON_CreateStringArray</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> **strings,<span class="keywordtype">int</span> count);</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="comment">/* Append item to the specified array/object. */</span></div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="../../dd/d21/cJSON_8c.html#a164dcefd36af8654942116c444bd0b6a">cJSON_AddItemToArray</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *array, <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *item);</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span>     <a class="code" href="../../dd/d21/cJSON_8c.html#a096004811663311569e95aa77518959c">cJSON_AddItemToObject</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<span class="keywordtype">object</span>,<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>,<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *item);</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="comment">/* Append reference to item to the specified array/object. Use this when you want to add an existing cJSON to a new cJSON, but don&#39;t want to corrupt your existing cJSON. */</span></div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="../../dd/d21/cJSON_8c.html#a076941e875d547f20959c66de97beee5">cJSON_AddItemReferenceToArray</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *array, <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *item);</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span>     <a class="code" href="../../dd/d21/cJSON_8c.html#a001634f84d255810784155f4c8e4e288">cJSON_AddItemReferenceToObject</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<span class="keywordtype">object</span>,<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>,<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *item);</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="comment">/* Remove/Detatch items from Arrays/Objects. */</span></div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a68b9e0b2d984f1d873fb571425a98b9b">cJSON_DetachItemFromArray</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *array,<span class="keywordtype">int</span> which);</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span>   <a class="code" href="../../dd/d21/cJSON_8c.html#a2b08ee3d172cb94e9abea1e4031a366f">cJSON_DeleteItemFromArray</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *array,<span class="keywordtype">int</span> which);</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a7010822d267256f274e0adf22be2b202">cJSON_DetachItemFromObject</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<span class="keywordtype">object</span>,<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>);</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span>   <a class="code" href="../../dd/d21/cJSON_8c.html#a148a56617a2a97921d9b9dfbe5dc85bf">cJSON_DeleteItemFromObject</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<span class="keywordtype">object</span>,<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>);</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        </div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="comment">/* Update array items. */</span></div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="../../dd/d21/cJSON_8c.html#a567d357a7a0c3c0c9c896d98aae3dcec">cJSON_ReplaceItemInArray</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *array,<span class="keywordtype">int</span> which,<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *newitem);</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="../../dd/d21/cJSON_8c.html#a31202ffebc9e4f86c3db12f9793b6800">cJSON_ReplaceItemInObject</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<span class="keywordtype">object</span>,<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>,<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *newitem);</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="comment">/* Duplicate a cJSON item */</span></div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a9acb1410be711f33d7c6d39f916b2d35">cJSON_Duplicate</a>(<a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *item,<span class="keywordtype">int</span> recurse);</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="comment">/* Duplicate will create a new, identical cJSON item to the one you pass, in new memory that will</span></div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment">need to be released. With recurse!=0, it will duplicate any children connected to the item.</span></div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="comment">The item-&gt;next and -&gt;prev pointers are always zero on return from Duplicate. */</span></div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="comment">/* ParseWithOpts allows you to require (and check) that the JSON is null terminated, and to retrieve the pointer to the final byte parsed. */</span></div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../db/d68/structcJSON.html">cJSON</a> *<a class="code" href="../../dd/d21/cJSON_8c.html#a9c63df4d9350bee4bd1726f8f23ad536">cJSON_ParseWithOpts</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *value,<span class="keyword">const</span> <span class="keywordtype">char</span> **return_parse_end,<span class="keywordtype">int</span> require_null_terminated);</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="../../dd/d21/cJSON_8c.html#afd416be779f90b6369a189437d3bcc05">cJSON_Minify</a>(<span class="keywordtype">char</span> *json);</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="comment">/* Macros for creating things quickly. */</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#a7a02f3a43ca58698933294a95c90a6e6">  129</a></span>&#160;<span class="preprocessor">#define cJSON_AddNullToObject(object,name)              cJSON_AddItemToObject(object, name, cJSON_CreateNull())</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#a0bb61d70afe61f6bf209999458f170ac">  130</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define cJSON_AddTrueToObject(object,name)              cJSON_AddItemToObject(object, name, cJSON_CreateTrue())</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#a7069c1ed4b02a9ed2dc6063b2e62d675">  131</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define cJSON_AddFalseToObject(object,name)             cJSON_AddItemToObject(object, name, cJSON_CreateFalse())</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#ae9b6c76048eda06c6b92ff5e32f2e02e">  132</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define cJSON_AddBoolToObject(object,name,b)    cJSON_AddItemToObject(object, name, cJSON_CreateBool(b))</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#aedf8e7037a7332b3653f90be04519862">  133</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define cJSON_AddNumberToObject(object,name,n)  cJSON_AddItemToObject(object, name, cJSON_CreateNumber(n))</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#a3e2f334ba489b1c267ca40b3e046d5ee">  134</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define cJSON_AddStringToObject(object,name,s)  cJSON_AddItemToObject(object, name, cJSON_CreateString(s))</span></div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="comment">/* When assigning an integer value, it needs to be propagated to valuedouble too. */</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="code" href="../../d1/d82/cJSON_8h.html#a548f0c2ae589c8ea4a1bab43d198854e">  137</a></span>&#160;<span class="preprocessor">#define cJSON_SetIntValue(object,val)                   ((object)?(object)-&gt;valueint=(object)-&gt;valuedouble=(val):(val))</span></div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 21 2014 17:13:55 for Open Data Protection C API by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.3
</small></address>
</body>
</html>
